Django একটি শক্তিশালী এবং স্কেলেবল ওয়েব ফ্রেমওয়ার্ক, যা প্রজেক্ট এবং অ্যাপ্লিকেশনের মধ্যে স্পষ্টভাবে বিভক্ত থাকে। একটি Django প্রজেক্টে একাধিক অ্যাপ্লিকেশন থাকতে পারে, এবং প্রতিটি অ্যাপ্লিকেশন তার নিজস্ব ফোল্ডার স্ট্রাকচার ধারণ করে। এখানে আমরা একটি Django অ্যাপ্লিকেশনের ডিরেক্টরি স্ট্রাকচার বিস্তারিতভাবে আলোচনা করবো।
Django অ্যাপ্লিকেশনের ফোল্ডার স্ট্রাকচার
যখন আপনি Django অ্যাপ্লিকেশন তৈরি করবেন, তখন এটি একটি নির্দিষ্ট ডিরেক্টরি স্ট্রাকচার অনুসরণ করে। একটি সাধারণ Django অ্যাপ্লিকেশনের ডিরেক্টরি স্ট্রাকচার দেখতে এরকম হয়:
myapp/
admin.py
apps.py
models.py
tests.py
views.py
migrations/
__init__.py
static/
myapp/
css/
js/
images/
templates/
myapp/
template1.html
template2.html
urls.py
ফোল্ডার এবং ফাইলের বিবরণ
১. admin.py
- এই ফাইলটি Django অ্যাপ্লিকেশনের admin interface কনফিগার করার জন্য ব্যবহৃত হয়।
- এখানে আপনি মডেলগুলোকে Django Admin প্যানেলে প্রদর্শন করতে কাস্টমাইজ করতে পারেন।
২. apps.py
- এটি Django অ্যাপ্লিকেশনের কনফিগারেশন ফাইল। এখানে অ্যাপের জন্য কোন বিশেষ কনফিগারেশন করা হয়, যেমন অ্যাপটির নাম, অ্যাপের রেজিস্ট্রেশন ইত্যাদি।
৩. models.py
- এই ফাইলে আপনার ডেটাবেস টেবিলের জন্য মডেলগুলো সংজ্ঞায়িত করা হয়। Django এর ORM (Object-Relational Mapping) ব্যবহার করে আপনি ডেটাবেস মডেল এবং টেবিল তৈরি করতে পারেন।
৪. views.py
- এই ফাইলে অ্যাপ্লিকেশনের ভিউ (views) সংজ্ঞায়িত করা হয়। ভিউ হচ্ছে ফাংশন বা ক্লাস যা HTTP রিকোয়েস্টের প্রেক্ষিতে রেসপন্স দেয়। এখানে আপনি ব্যবহারকারীর রিকোয়েস্ট অনুসারে টেমপ্লেট রেন্ডার বা ডেটা প্রদান করেন।
৫. tests.py
- এই ফাইলে অ্যাপ্লিকেশনের জন্য ইউনিট টেস্ট এবং ইনটিগ্রেশন টেস্ট লেখা হয়। Django টেস্ট ফ্রেমওয়ার্ক ব্যবহার করে আপনি টেস্ট কেস লিখতে পারেন।
৬. migrations/
- Django ORM ব্যবহার করে যখন ডেটাবেস মডেল পরিবর্তন করা হয়, তখন এই ফোল্ডারে মাইগ্রেশন ফাইল তৈরি হয়। মাইগ্রেশন ফাইল ডেটাবেসে পরিবর্তনগুলি প্রয়োগ করতে সাহায্য করে।
__init__.py: এটি একটি সাধারণ Python ফাইল, যা মাইগ্রেশন ডিরেক্টরিটিকে একটি Python প্যাকেজ হিসেবে চিহ্নিত করে।
৭. static/
- এই ফোল্ডারে আপনি আপনার স্ট্যাটিক ফাইল (যেমন CSS, JavaScript, ইমেজ) রাখেন। স্ট্যাটিক ফাইলগুলি সাধারণত ওয়েবপেজের ডিজাইন ও ফাংশনালিটি তৈরি করতে ব্যবহৃত হয়।
- এখানে
myapp/সাবফোল্ডারে আপনার অ্যাপ্লিকেশনের জন্য নির্দিষ্ট স্ট্যাটিক ফাইল রাখতে পারেন (যেমনcss/,js/,images/)।
৮. templates/
- এই ফোল্ডারে আপনি আপনার অ্যাপ্লিকেশনের HTML টেমপ্লেট রাখেন। Django টেমপ্লেট সিস্টেম ব্যবহার করে আপনি ডাইনামিক কনটেন্ট রেন্ডার করতে পারেন।
myapp/সাবফোল্ডারে আপনি অ্যাপ্লিকেশনের জন্য টেমপ্লেটগুলো রাখতে পারেন, যেমনtemplate1.html,template2.htmlইত্যাদি।
৯. urls.py
- এই ফাইলে আপনার অ্যাপ্লিকেশনের URL রাউটিং কনফিগারেশন থাকে। Django তে URL কনফিগারেশন হয়, যাতে ভিউ এবং URL প্যাটার্নের মধ্যে সম্পর্ক স্থাপন করা যায়।
একটি সম্পূর্ণ Django প্রজেক্টের স্ট্রাকচার
যখন আপনি Django প্রজেক্ট তৈরি করবেন, তখন একটি প্রজেক্টের ভিতরে এক বা একাধিক অ্যাপ্লিকেশন থাকতে পারে। একটি Django প্রজেক্টের সাধারণ স্ট্রাকচার দেখতে এরকম হয়:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
myapp/
admin.py
apps.py
models.py
views.py
tests.py
migrations/
static/
templates/
urls.py
manage.py: Django প্রজেক্টের ম্যানেজমেন্ট টুল, যা সার্ভার চালানো, মাইগ্রেশন করা, অ্যাপ তৈরি করা ইত্যাদি কাজ করতে সাহায্য করে।myproject/: এটি Django প্রজেক্টের মূল ডিরেক্টরি, যেখানে প্রজেক্টের কনফিগারেশন ফাইলগুলো থাকে (যেমনsettings.py,urls.py, ইত্যাদি)।
সারাংশ
Django অ্যাপ্লিকেশনের ডিরেক্টরি স্ট্রাকচারটি খুবই নিয়মিত এবং সুসংগঠিত, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে সাহায্য করে। প্রতিটি ফোল্ডার এবং ফাইল একটি নির্দিষ্ট দায়িত্ব পালন করে এবং এই স্ট্রাকচার অনুসরণ করে আপনার Django প্রজেক্ট পরিচালনা করা সহজ হয়ে যায়।
Read more